<?php

// 引入函数库文件
include_once('functions.php');

// 定义生成验证码图片的宽度以及高度

$width = 80;
$height = 34;

// 创建画布
$img = imagecreatetruecolor($width, $height);

// 定义背景颜色
$bgColor = imagecolorallocate($img, 238, 238, 238);

// 填充背景颜色
imagefilledrectangle($img, 0, 0, $width, $height, $bgColor);
// imagefill($img, 0, 0, $bgColor);

// 定义文字颜色
$textcolor = imagecolorallocate($img, 255, 0, 0);

// 生成4哥随机字符
$str1 = build_ranstr(1);
$str2 = build_ranstr(1);
$str3 = build_ranstr(1);
$str4 = build_ranstr(1);

// 获取项目的根目录,上传服务器用这个方法
$rootPath = $_SERVER['DOCUMENT_ROOT'];
$font = $rootPath.'/assets/fonts/OpenSans-Light.ttf';


// 定义字体文件 最好绝对路径
// $font = 'C:/Users/l1872/Desktop/web/GZ-2024/php/admin/assets/fonts/OpenSans-Light.ttf';

// 把字符加入到图片里
imagettftext($img, 16, mt_rand(-30, 30), 6, 26, $textcolor, $font, $str1);
imagettftext($img, 16, mt_rand(-30, 30), 20, 26, $textcolor, $font, $str2);
imagettftext($img, 16, mt_rand(-30, 30), 40, 26, $textcolor, $font, $str3);
imagettftext($img, 16, mt_rand(-30, 30), 60, 26, $textcolor, $font, $str4);

 //绘制一些点状像素
 for($i=0;$i<=5;$i++){
    imagesetpixel($img,mt_rand(0,$width),mt_rand(0,$height),
    imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
}
//第二个和第三个参数是点的位置坐标
//第四个参数是点的颜色

 //绘制一些线像素
 for($i=0;$i<=3;$i++){
    imageline($img,mt_rand(0,$width),mt_rand(0,$height),mt_rand(0,$width),mt_rand(0,$height),
    imagecolorallocate($img,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255)));
}
//第2/3/4/5个参数是线的两端坐标

//将验证码中的四个字符保存在session里面
session_start();
$code=$str1.$str2.$str3.$str4;
$_SESSION['code']=$code;

// 设置头信息 => 告诉浏览器这个文件的类型
header('Content-Type: image/png');

// 将PNG图片输出到浏览器
imagepng($img);
